package day.day10;

import java.util.Deque;
import java.util.LinkedList;

import org.junit.Test;

/**
 * 	双端队列：头和末尾都能够增加
 * @author Administrator
 *
 */
public class DequeDemo {
	
	/**
	 * 	获取
	 */
	@Test
	public void demo1() {
		Deque<String> q = new LinkedList<String>();
		
		// 添加
		q.add("1");
		q.addFirst("2");
		q.addLast("3");
		
		q.offer("4");
		q.offerFirst("5");
		q.offerLast("6");
		
		// 获取
		q.remove();
		q.removeFirst();
		q.removeLast();
		
		q.poll();
		q.pollFirst();
		q.pollLast();
		
		q.peek();
		q.peekFirst();
		q.peekLast();
		
	}
	
	/**
	 * 	特殊的方法：在java中没有对于Stack实现，若想实现这个功能，可以使用双端队列，push（压栈）、pop（出线）、peek（取出不删除）
	 */
	@Test
	public void demo2() {
		
		Deque<String> q = new LinkedList<String>();
		
		// 在最后一个添加：压栈
		q.push("第一个");
		q.push("第二个");
		q.push("第三个");
		q.push("第四个");
		
		// 取出最后一个值：出栈
		String s = q.pop();

		System.out.println(s);
		
	}
	
	
}
 